package ar.edu.utn.frgp.TPFinalBanco.action;

import java.text.SimpleDateFormat;
import java.util.*;

import ar.edu.utn.frgp.TPFinalBanco.model.Cliente;
import ar.edu.utn.frgp.TPFinalBanco.model.Prestamo;
import ar.edu.utn.frgp.TPFinalBanco.service.impl.GestionPrestamoServiceImpl;

import com.opensymphony.xwork2.ActionContext;

public class IniciarPagarPrestamoAction extends BaseAction{


	/**
	 * 
	 */
	private static final long serialVersionUID = -8241626536031542868L;
	private Map<String, Object> session;
	private Date ahora;
	private Boolean recargo;
	private Boolean tiene;
	private Boolean loguio;
	private Cliente cliente;
	
	public String execute() throws Exception{
		
		//verificar si el cliente esta logueado
		//if (ActionContext.getContext().getSession()!=null) {
			
			setLoguio(true);
		
			// paso la session.
			setSession(ActionContext.getContext().getSession());
			setCliente((Cliente) session.get("cliente"));
			//obtengo la fecha del sistema
			setAhora(new Date());
			
			SimpleDateFormat dia = new SimpleDateFormat("dd");
			//Verifico si el pago se realiza fuera de termino
			if(Integer.parseInt(dia.format(ahora)) > 10){
				setRecargo(true);
			}
			
			//verifico si el cliente tiene cuentas
			if(((Cliente) session.get("cliente")).getCantCuentas() > 0){
				setTiene(true);
			}
			
			//Obtengo los prestamos sin pagar
			GestionPrestamoServiceImpl prestamoService = (GestionPrestamoServiceImpl) getContext()
					.getBean("gestionPrestamoService");
			List<Prestamo> prestamo;
			prestamo=prestamoService.getPrestamosSinPagar(cliente.getDni());
			session.put("listaPrestamo", prestamo);
			
		//}
				
		return SUCCESS;
	
	}

	public Date getAhora() {
		return ahora;
	}

	public void setAhora(Date ahora) {
		this.ahora = ahora;
	}

	public Map<String, Object> getSession() {
		return session;
	}

	public void setSession(Map<String, Object> session) {
		this.session = session;
	}

	public Boolean getRecargo() {
		return recargo;
	}

	public void setRecargo(Boolean recargo) {
		this.recargo = recargo;
	}

	public Boolean getTiene() {
		return tiene;
	}

	public void setTiene(Boolean tiene) {
		this.tiene = tiene;
	}

	public Boolean getLoguio() {
		return loguio;
	}

	public void setLoguio(Boolean loguio) {
		this.loguio = loguio;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}


}
